<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>adjacency_matrix 聚合 | ElasticSearch 7.7 权威指南中文版</title>
	<meta name="keywords" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <meta name="description" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
	<link rel="stylesheet" type="text/css" href="../static/styles.css" />
	<script>
	var _link = 'search-aggregations-bucket-adjacency-matrix-aggregation.html';
    </script>
</head>
<body>
<div class="main-container">
    <section id="content">
        <div class="content-wrapper">
            <section id="guide" lang="zh_cn">
                <div class="container">
                    <div class="row">
                        <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                            <div style="color:gray; word-break: break-all; font-size:12px;">原英文版地址: <a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.7/search-aggregations-bucket-adjacency-matrix-aggregation.html" rel="nofollow" target="_blank">https://www.elastic.co/guide/en/elasticsearch/reference/7.7/search-aggregations-bucket-adjacency-matrix-aggregation.html</a>, 原文档版权归 www.elastic.co 所有<br/>本地英文版地址: <a href="../en/search-aggregations-bucket-adjacency-matrix-aggregation.html" rel="nofollow" target="_blank">../en/search-aggregations-bucket-adjacency-matrix-aggregation.html</a></div>
                        <!-- start body -->
                  <div class="page_header">
<strong>重要</strong>: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html" rel="nofollow">当前版本文档</a>。
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch 权威指南 [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="search-aggregations.html">聚合</a></span>
»
<span class="breadcrumb-link"><a href="search-aggregations-bucket.html">桶(bucket)聚合</a></span>
»
<span class="breadcrumb-node">adjacency_matrix 聚合</span>
</div>
<div class="navheader">
<span class="prev">
<a href="search-aggregations-bucket.html">« 桶(bucket)聚合</a>
</span>
<span class="next">
<a href="search-aggregations-bucket-autodatehistogram-aggregation.html">auto_date_histogram 聚合 »</a>
</span>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="search-aggregations-bucket-adjacency-matrix-aggregation"></a>adjacency_matrix 聚合
</h2>
</div></div></div>
<p>
返回<a href="https://en.wikipedia.org/wiki/Adjacency_matrix" class="ulink" target="_top">邻接矩阵(adjacency matrix)</a>形式的桶聚合。

该请求提供了命名过滤器表达式的集合，类似于 <code class="literal">filters</code> 聚合请求。

响应中的每个桶代表交叉过滤器矩阵中的一个非空单元。
</p>
<p>给定名为<code class="literal">A</code>、<code class="literal">B</code> 和 <code class="literal">C</code>的过滤器，响应将返回具有以下名称的桶:</p>
<div class="informaltable">
<table border="1" cellpadding="4px">
<colgroup>
<col class="col_1">
<col class="col_2">
<col class="col_3">
<col class="col_4">
</colgroup>
<thead>
<tr>
<th align="left" valign="top"></th>
<th align="left" valign="top">A</th>
<th align="left" valign="top">B</th>
<th align="left" valign="top">C</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top"><p><span class="strong strong"><strong>A</strong></span></p></td>
<td align="left" valign="top"><p>A</p></td>
<td align="left" valign="top"><p>A&amp;B</p></td>
<td align="left" valign="top"><p>A&amp;C</p></td>
</tr>
<tr>
<td align="left" valign="top"><p><span class="strong strong"><strong>B</strong></span></p></td>
<td align="left" valign="top"><p></p></td>
<td align="left" valign="top"><p>B</p></td>
<td align="left" valign="top"><p>B&amp;C</p></td>
</tr>
<tr>
<td align="left" valign="top"><p><span class="strong strong"><strong>C</strong></span></p></td>
<td align="left" valign="top"><p></p></td>
<td align="left" valign="top"><p></p></td>
<td align="left" valign="top"><p>C</p></td>
</tr>
</tbody>
</table>
</div>
<p>
交叉的桶(例如 <code class="literal">A&amp;C</code>)使用由 & 符号分隔的两个过滤器名称的组合来标记。

请注意，响应不包括“C&A”桶，因为这是与“A&C”相同的一组文档。

因为矩阵是<em>对称的(symmetric)</em>，所以我们只返回它的一半。

为此，我们对过滤器名称字符串进行排序，并始终使用一对名称中最小的一个作为"&amp;"分隔符左侧的值。
</p>
<p>
如果客户端希望使用默认的&符号之外的分隔符字符串，可以在请求中传递一个替代的 <code class="literal">separator</code>参数。
</p>
<p>示例：</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">PUT /emails/_bulk?refresh
{ "index" : { "_id" : 1 } }
{ "accounts" : ["hillary", "sidney"]}
{ "index" : { "_id" : 2 } }
{ "accounts" : ["hillary", "donald"]}
{ "index" : { "_id" : 3 } }
{ "accounts" : ["vladimir", "donald"]}

GET emails/_search
{
  "size": 0,
  "aggs" : {
    "interactions" : {
      "adjacency_matrix" : {
        "filters" : {
          "grpA" : { "terms" : { "accounts" : ["hillary", "sidney"] }},
          "grpB" : { "terms" : { "accounts" : ["donald", "mitt"] }},
          "grpC" : { "terms" : { "accounts" : ["vladimir", "nigel"] }}
        }
      }
    }
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/412.console"></div>
<p>
在上面的例子中，我们分析了 email 消息，以查看哪些组的个人交换了消息。

我们将获得每个组的单独计数，以及记录了交互的组对的消息计数。
</p>
<p>响应:</p>
<div class="pre_wrapper lang-console-result">
<pre class="programlisting prettyprint lang-console-result">{
  "took": 9,
  "timed_out": false,
  "_shards": ...,
  "hits": ...,
  "aggregations": {
    "interactions": {
      "buckets": [
        {
          "key":"grpA",
          "doc_count": 2
        },
        {
          "key":"grpA&amp;grpB",
          "doc_count": 1
        },
        {
          "key":"grpB",
          "doc_count": 2
        },
        {
          "key":"grpB&amp;grpC",
          "doc_count": 1
        },
        {
          "key":"grpC",
          "doc_count": 1
        }
      ]
    }
  }
}</pre>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="_usage"></a>使用
</h3>
</div></div></div>
<p>
这种聚合本身可以提供创建无向加权图所需的所有数据。

但是，当与子聚合(如<code class="literal">date_histogram</code>)一起使用时，结果可以提供执行<a href="https://en.wikipedia.org/wiki/Dynamic_network_analysis" class="ulink" target="_top">动态网络分析</a>所需的额外级别的数据，在这种情况下，检查<em>一段时间内</em>的交互变得非常重要。
</p>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="_limitations_2"></a>Limitations
</h3>
</div></div></div>
<p>
对于N个过滤器，其所产生的桶的矩阵可以是 N²/2，因此存在100个过滤器的默认最大值。

这个设置可以通过修改索引级别的设置 <code class="literal">index.max_adjacency_matrix_filters</code> 来改变(注意：这个设置将在 8.0版本后废除)。
</p>
</div>

</div>
<div class="navfooter">
<span class="prev">
<a href="search-aggregations-bucket.html">« 桶(bucket)聚合</a>
</span>
<span class="next">
<a href="search-aggregations-bucket-autodatehistogram-aggregation.html">auto_date_histogram 聚合 »</a>
</span>
</div>
</div>

                  <!-- end body -->
                        </div>
                        <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                        
                        </div>
                    </div>
                </div>
            </section>
        </div>
    </section>
</div>
<script src="../static/cn.js"></script>
</body>
</html>